iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 24
0
AI & Data

蟲王養成 - scrapy系列 第 24

DAY 24 : scrapy facebook crawl (一)

  • 分享至 

  • xImage
  •  

先前發文
DAY 01 : 參賽目的與規劃
DAY 02 : python3 virtualenv 建置
DAY 03 : python3 request
DAY 04 : 使用beautifulsoup4 和lxml
DAY 05 : select 和find 抓取tag
DAY 06 : soup解析後 list取值
DAY 07 : request_header_cookie 通過網頁18限制
DAY 08 : ppt內文爬取
DAY 09 : 資料處理 split replace strip
DAY 10 : python csv 寫入 和dict 合併
DAY 11 : python class function
DAY 12 : crawl 框架 scrapy 使用
DAY 13 : scrapy 架構
DAY 14 : scrapy pipeline data insert mongodb
DAY 15 : scrapy middleware proxy
DAY 16 : scrapy selenium
DAY 17 : scrapy 爬取js畫面資料(二)
DAY 18 : scrapy splash 爬取js畫面資料(三)
DAY 19 : python .env 使用
DAY 20 : python chartify 資料視覺化套件
DAY 21 : python3 pandas 資料處理
DAY 22 : scrapy 資料應用apriori
DAY 23 : Datamining twitch data
DAY 24 : scrapy facebook crawl (一)


今天來爬facebook

首先我們先用手機使用瀏覽器開啟facebook
你會發現網頁url上 和一般的https://www.facebook.com/ , www變成了"m"

在我們的網頁上你可以嘗試更改你的網址並觀察 原本關閉js的facebook和mbasic關閉後的網頁是否相同

一般的網頁(www.facebook.com)關閉js後頁面就會被置換

那mbasic的網頁關閉js後保留了更多資料

那我們一開始先預設我們需要的資料欄位

並且設定爬取文章的年份

記得要把自己facebook的語系設成it(義大利) , 只有義大利語系可以讓我們爬取(2018的時候

是這樣沒錯) , 但是剛剛重新跑了一下code 並沒有這個限制

class FacebookSpider(scrapy.Spider):
    """
    Parse FB pages (needs credentials)
    """    
    name = "fb"
    #name

    custom_settings = {
        'FEED_EXPORT_FIELDS': ['source','shared_from','date','text', \
                               'reactions','likes','ahah','love','wow', \
                               'sigh','grrr','comments','url']
    }
    #輸出csv 欄位順序
    k = 2019
    count = 0
        #先寫入第幾行
    lang = 'it'    
    start_urls = ['https://mbasic.facebook.com']
        #預設網址之後會+上/@#$%^&*   

    def parse(self, response):
        '''
        Handle login with provided credentials
        '''
        email = os.getenv("EMAIL")
        password = os.getenv("PASSWORD")
        return FormRequest.from_response(
                response,
                formxpath='//form[contains(@action, "login")]',
                formdata={'email': email,'pass': password},
                callback=self.parse_home
        )
    #給formdata後給parse_home進行登入

明天來爬取頁面吧!


上一篇
DAY 23 : Datamining twitch data
下一篇
DAY 25 : scrapy facebook crawl (二)
系列文
蟲王養成 - scrapy30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言